package com.zjsd.sqeybusiness.utils;

import java.util.concurrent.ThreadLocalRandom;

public class UniqueIdGenerator {

    private static final long BASE_TIMESTAMP = 1577836800000L; // 2020-01-01 00:00:00 UTC的时间戳

    public static String generate() {
        // 获取当前时间与基点的差值（毫秒）
        long timestamp = System.currentTimeMillis() - BASE_TIMESTAMP;
        // 取时间戳的后8位（模1e8）
        long timestampPart = timestamp % 100000000L;
        // 生成4位安全随机数，避免高位为0的情况
        int randomPart = ThreadLocalRandom.current().nextInt(1000, 9999);
        // 组合成12位数字字符串
        return String.format("%08d%04d", timestampPart, randomPart);
    }

    public static void main(String[] args) {
        String uniqueId = generate();
        System.out.println("生成的唯一ID: " + uniqueId);
        System.out.println("长度: " + uniqueId.length());
    }
}